package com.rt.schedulenew.api;

import com.rt.schedulebase.dto.DictHospitalDto;
import com.rt.schedulebase.dto.ExamApplyDto;
import com.rt.schedulebase.dto.ExamApplyPatientDto;
import com.rt.schedulenew.dto.ResponseDto;
import com.rt.schedulenew.utils.global.BusinessException;
import com.rt.schedulenew.utils.global.JsonResult;
import java.util.List;

/**
 * 自助机调用相关接口
 */
public interface ISelfTerminalService {
    /**
     * 根据申请单号获取院区列表
     *
     * @param dto
     * @return
     */
    List<DictHospitalDto> getHospitals(DictHospitalDto dto) throws BusinessException;

    /**
     * 根据 ic卡或者患者id等条件 获取患者信息
     *
     * @param dto
     * @return
     */
    JsonResult getPatientInfo(ExamApplyPatientDto dto);


    /**
     * 获取患者申请单列表
     *
     * @param dto
     * @return
     * @throws BusinessException
     */
    List<ResponseDto> getPatientApplies(ExamApplyDto dto) throws BusinessException;


    /**
     * 获取申请单预约截止日期
     *
     * @param dto
     * @return
     */
    JsonResult getScheduleExpireDate(ExamApplyDto dto);


    /**
     * 查询申请单在对应的日期时段里面各个日期的可预约状态
     *
     * @param dto
     * @return
     */
    JsonResult getScheduleDates(ExamApplyDto dto);


    /**
     * 申请单在某个日期内可以预约的时段列表
     * @param dto
     * @return
     */
    JsonResult getEnabledScheduleApms(ExamApplyDto dto);
}
